package com.blb.service;

import com.blb.entity.IoWarehouse;
import com.baomidou.mybatisplus.extension.service.IService;
import com.blb.entity.IomDetailList;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;

import java.util.List;
import java.util.Map;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author HuaHao
 * @since 2019-11-16
 */
public interface IIoWarehouseService extends IService<IoWarehouse> {

    /**
     * 得到最后的一个批次
     * @return
     */
    Integer getBatch();

    /**
     * 查找所有还没有出库的批次
     * @return
     */
    List<Integer> getAllBatch(String companyId);
    /**
     * 通过批次号查找对应的信息
     * @param outBatchNo
     * @return
     */
    IoWarehouse getPNameByBatch(String outBatchNo);

    /**
     * 通过订单编号查找产品名称以及所对应的所有产品码
     * @param orderId
     * @return
     */
    List<Map<String,Object>> getPNameAndCode(String orderId);
    /**
     * 通过订单编号查找产品码的总条数
     * @param orderId
     * @return
     */
    int countIn(String orderId);
    /**
     * 通过订单编号查找商品编号，商品数量，商品名称
     * @return
     */
    Map<String,Object> getPByOrderId(String orderId);

    /**
     * 添加入库记录，涉及五个表（出入库表，交接单表，货位表，出入移库详情表，订单表）
     * @param iomDetails
     * @param inW
     * @param handoverId
     * @param pNo
     */
    void addInWarehouse(IomDetailList iomDetails, IoWarehouse inW , String handoverId, String pNo,String oNo);

    /**
     * 添加出库记录，涉及三个表（出入库表，货位表，出入移库详情表）
     * @param outW
     */
    void addOutWarehouse(IoWarehouse outW );
}
